/*
 * GBHGraph.hpp
 *
 *  Created on: Sep 28, 2011
 *      Author: Andrew B. Godbehere
 */

#ifndef GRAPH_HPP_
#define GRAPH_HPP_

#include <vector>
#include <iostream>

namespace godbehere
{
	template <int N>
	class GraphicalModel
	{
	public:
		GraphicalModel();
		virtual ~GraphicalModel();
		int num_Vertices;
	protected:  // accessible with friend class
		std::vector<std::vector <bool> > 	edgeMatrix;
	};

	template <int N>
	GraphicalModel<N>::GraphicalModel()
	{
		num_Vertices = N;
		for (int i = 0; i < N; ++i)
		{
			std::vector<bool> temp(N);
			this->edgeMatrix.push_back(temp);
		}
	}

	template <int N>
	GraphicalModel<N>::~GraphicalModel()
	{
		for (int i = 0; i < N; ++i)
		{
			edgeMatrix[i].clear();
		}
		edgeMatrix.clear();
	}

}

#endif /* GRAPH_HPP_ */
